package com.smart.manager.member.entities.models;

import com.smart.common.entities.core.BaseLongModel;
import com.smart.manager.member.entities.assembler.FirmAttr;
import com.smart.manager.member.entities.enums.MemberLevel;
import com.smart.manager.system.entities.enums.Sex;
import io.ebean.annotation.DbJson;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.persistence.Entity;
import java.time.LocalDateTime;

/**
 * 会员系统-会员资料
 *
 * @author Administrator
 * @TableName system_module
 */
@EqualsAndHashCode(callSuper = true)
@Entity
@Data
@Accessors(chain = true)
public class MemberProfileMain extends BaseLongModel {


    @ApiModelProperty("会员昵称")
    private String nickName;


    @ApiModelProperty("手机号码")
    private String phoneNumber;

    @ApiModelProperty("用户邮箱")
    private String email;


    @ApiModelProperty("手机操作系统")
    private String client;

    @ApiModelProperty("设备串号")
    private String imei;

    @ApiModelProperty("性别")
    private Sex sex;

    /**
     * 头像地址
     */

    @ApiModelProperty("头像地址")
    private String avatar;

    /**
     * 会员类型
     */
    @ApiModelProperty("会员类型")
    private MemberLevel level;


    /**
     * 是否是虚拟会员
     */
    @ApiModelProperty("会员真实属性")
    private Boolean realAttr;




    /**
     * 注册来源
     */
    @ApiModelProperty("注册来源")
    private String origin;

    @ApiModelProperty("省份")
    private String province;


    @ApiModelProperty("城市")
    private String city;


    @ApiModelProperty("区域")
    private String district;

    @ApiModelProperty("备注信息")
    private String remark;


    /**
     * 创建/注册时间
     */
    @ApiModelProperty("教程字符串")
    private String tutorial;


    /**
     * 创建/注册时间
     */
    @ApiModelProperty("创建/注册时间")
    private LocalDateTime regTime;



    /**
     * 创建/注册时间
     */
    @ApiModelProperty("首次登录IP")
    private String ip;


    @ApiModelProperty("邀请注册模式")
    private String inviteMode;


    @ApiModelProperty("备注")
    private String remarks;

    /**
     * 创建/注册时间
     */
    @ApiModelProperty("邀请人Id")
    private Long inviterId;


    @ApiModelProperty("邀请人Id")
    private transient Object inviterInfo;


    /**
     * 创建/注册时间
     */
    @ApiModelProperty("微信公众号OPENID")
    private String wxMpId;


    /**
     * 创建/注册时间
     */
    @ApiModelProperty("微信小程序OPENID")
    private String wxXcxId;


    /**
     * 创建/注册时间
     */
    @ApiModelProperty("微信开放平台OPENID")
    private String wxAppId;


    /**
     * 邀请码
     */
    @ApiModelProperty("邀请码")
    private String inviterCode;



    @DbJson
    @ApiModelProperty("企业会员属性")
    private FirmAttr firmAttr;


    @ApiModelProperty("刷新令牌过期时间")
    private LocalDateTime refreshExpiredTime;

    @ApiModelProperty("身份刷新令牌")
    private String refreshToken;


    @ApiModelProperty("最后登录时间")
    private LocalDateTime lastLoginTime;


    @ApiModelProperty("活跃属性")
    private Boolean activate;

    @ApiModelProperty("IM账号状态")
    private Boolean  imStatus;


}
